package ${model.info.classPackageFullName};

import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ace.cmp.rest.spring.data.jdbc.querydsl.core.controller.admin.AbstractAdminRestController;
import ace.cmp.rest.spring.data.jdbc.querydsl.core.controller.sdk.AbstractSdkRestController;
import ace.common.module.core.impl.controller.rest.admin.TenantAdminEntityOfAppController;
import ace.cmp.security.oauth2.resource.server.core.annotation.PreAuthorizeIsInternalClient;
import ace.cmp.security.oauth2.resource.server.core.annotation.PreAuthorizeIsUserAuthenticated;
import ${model.entityClassInfo.classFullName};

/**
* 管理端租户-${model.roleRemark}-${model.entityClassInfo.model.remark} admin controller.
*
* @author Caspar
*/
@Tag(name = "管理端租户-${model.roleRemark}-${model.entityClassInfo.model.remark}-管理-API")
@PreAuthorizeIsUserAuthenticated
@AllArgsConstructor
@RestController
@RequestMapping(${model.info.className}.PATH)
@Valid
public class ${model.info.className} extends AdminEntityOfAppController<${model.entityClassInfo.info.className}, ${model.entityClassInfo.model.entityIdType}, ${model.appEntityClassInfo.info.className}> {
    public static final String PATH = "/${model.restNamespace}/${model.entityClassInfo.info.entityClassNameLowercaseDashName}/admin/tenant/${model.restRoleNamespace}";

    public ${model.info.className}(){
        super("${model.roleCode}");
    }
}